﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using DangKy.Data;
using DangKy.Objects;

namespace DangKy
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void txtMSSV_PreviewKeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Return)
            {
                lblHoTen.Content = "Họ và Tên: ";
                lblLop.Content = "Lớp: ";
                lblDiaChi.Content = "Địa chỉ: ";
                lblNgaySinh.Content = "Ngày sinh: ";
                cmbChuyenNganh.ItemsSource = null;
                cmbChuyenNganh.IsEnabled = false;
                btnLuu.IsEnabled = false;
                btnXoaThongTin.IsEnabled = false;

                if (txtMSSV.Text.Trim() != "")
                {
                    try
                    {
                        DataAccess da = new DataAccess();
                        SinhVienOBJ sv = da.LayThongTinSinhVien(txtMSSV.Text);
                        if (sv.HoTen == "")
                            MessageBox.Show("Không tìm thấy thông tin sinh viên", "Thông Báo", MessageBoxButton.OK, MessageBoxImage.Warning);
                        else
                        {
                            // Hiển thị thông tin sinh viên
                            lblHoTen.Content = "Họ và Tên: " + sv.HoTen;
                            lblLop.Content = "Lớp: " + sv.Lop;
                            lblDiaChi.Content = "Địa chỉ: " + sv.DiaChi;
                            lblNgaySinh.Content = "Ngày sinh: " + sv.NgaySinh;
                            btnXoaThongTin.IsEnabled = true;

                            // Lấy thông tin ngành & chuyên ngành
                            NganhOBJ ng = da.LayChuyenNganh(sv.MaNganh, sv.TenNganh);
                            if (ng.dsChuyenNganh.Count == 0)
                                MessageBox.Show("Không có chuyên ngành!", "Thông Báo", MessageBoxButton.OK, MessageBoxImage.Warning);
                            else
                            {
                                cmbChuyenNganh.ItemsSource = ng.dsChuyenNganh;
                                cmbChuyenNganh.DisplayMemberPath = "TenNganh";
                                cmbChuyenNganh.SelectedValuePath = "MaNganh";
                                cmbChuyenNganh.IsEnabled = true;
                                btnLuu.IsEnabled = true;
                            }

                            // Lấy thông tin đăng ký chuyên ngành (nếu có)
                            cmbChuyenNganh.SelectedValue = da.LayNganhDangKy(sv.MSSV);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "Thông Báo", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }
                else
                    MessageBox.Show("Chưa nhập Mã số sinh viên", "Thông Báo", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }

        private void btnLuu_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                DataAccess da = new DataAccess();
                string strMaNganh = da.LayNganhDangKy(txtMSSV.Text);
                NganhOBJ n = (NganhOBJ)cmbChuyenNganh.SelectedItem;
                if (strMaNganh == "")
                {
                    if (n == null)
                        MessageBox.Show("Chưa chọn chuyên ngành...", "Thông Báo", MessageBoxButton.OK, MessageBoxImage.Error);
                    else
                    {
                        if (da.DangKyChuyenNganh(txtMSSV.Text.Trim(), n.MaNganh) > 0)
                            MessageBox.Show("Đăng ký thành công", "Thông Báo", MessageBoxButton.OK, MessageBoxImage.Information);
                        else
                            MessageBox.Show("Đăng ký không thành công", "Thông Báo", MessageBoxButton.OK, MessageBoxImage.Warning);
                    }
                }
                else
                {
                    if (n.MaNganh == strMaNganh)
                        MessageBox.Show("Bạn đã đăng ký ngành này", "Thông Báo", MessageBoxButton.OK, MessageBoxImage.Information);
                    else
                    {
                        if (da.CapNhatDangKyChuyenNganh(txtMSSV.Text.Trim(), n.MaNganh) > 0)
                            MessageBox.Show("Cập nhật đăng ký thành công", "Thông Báo", MessageBoxButton.OK, MessageBoxImage.Information);
                        else
                            MessageBox.Show("Đăng ký không thành công", "Thông Báo", MessageBoxButton.OK, MessageBoxImage.Warning);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Thông Báo", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }

        private void btnXoaThongTin_Click(object sender, RoutedEventArgs e)
        {
            txtMSSV.Text = "";
            lblHoTen.Content = "Họ và Tên: ";
            lblLop.Content = "Lớp: ";
            lblDiaChi.Content = "Địa chỉ: ";
            lblNgaySinh.Content = "Ngày sinh: ";
            cmbChuyenNganh.ItemsSource = null;
            cmbChuyenNganh.IsEnabled = false;
            btnLuu.IsEnabled = false;
            btnXoaThongTin.IsEnabled = false;
        }
    }
}
